Skip to main content

26 高速缓存

高速缓存

CPU 需要执行的指令、需要访问的数据,都在内存里,但 CPU 的速度是内存的百倍。

内存中的指令、数据会被加载到 L1-L3 Cache 中,而不是直接由 CPU 访问内存获取。95% 的情况下 CPU 只需要访问 L1-L3 Cache 而无需访问内存。

CPU 从内存中读取数据到 CPU Cache ,是一小块一小块来读取数据的,叫作 Cache Line(缓存块)。

Cache 的数据结构和读取过程

直接映射 Cache

确保任何一个内存块的地址,始终映射到一个固定的 CPU Cache 地址(Cache Line),映射关系用 mod 运算(求余运算)实现。

一个内存的访问地址,最终包括高位代表的组标记、低位代表的索引,以及在对应的 Data Block 中定位对应字的位置偏移量。

高速缓存的写入

写直达(Write-Through)

写回(Write-Back)